# h264.mp4 及 rgb.in 是原始文件
#
SRC1 = h264.mp4
SRC_RGB = rgb.in
GEN_SRC_YUV = yuv.in

DES_YUV = yuv.out
DES_RGB = rgb.out


# 默认目标生成可执行文件
b build: torgb toyuv

# 可执行文件目标
torgb: torgb.cpp i4202rgb.h
	g++ -o torgb torgb.cpp -I./ -g
toyuv: toyuv.cpp rgb2i420.h
	g++ -o toyuv toyuv.cpp -I./ -g


# 用可执行文件生成测试输出文件
$(DES_YUV): $(SRC_RGB)
	./toyuv $< $@ 60 40
$(DES_RGB) : $(GEN_SRC_YUV)
	./torgb $< $@ 720 480


# 用ffmpeg 来生成 yuv.in 文件
$(GEN_SRC_YUV): $(SRC1)
	yes | ffmpeg -i $(SRC1) -f rawvideo -vcodec rawvideo -frames 100 $(GEN_SRC_YUV)

# 用ffplay 来检查 yum.in 文件
testyuv: $(GEN_SRC_YUV)
	cat $(GEN_SRC_YUV) | ffplay -i pipe:0 -f rawvideo -pix_fmt yuv420p -video_size 720x480
# 用ffplay 来检查输出文件
p_yuv: $(DES_YUV)
	cat $(DES_YUV)| ffplay -i pipe:0 -f rawvideo -pix_fmt yuv420p -video_size 60x40
p_rgb: $(DES_RGB)
	cat $(DES_RGB) | ffplay -i pipe:0 -f rawvideo -pix_fmt rgb24 -video_size 720x480



clean:
	rm torgb toyuv $(DES_RGB) $(DES_YUV) $(GEN_SRC_YUV)

.PHONY: p_yuv p_rgb testyuv
